package com.ytjj.qmyx.mall.model.response;

import com.ytjj.qmyx.mall.constants.IsActivityConstant;
import com.ytjj.qmyx.mall.enums.ActivityTypeEnums;
import com.ytjj.qmyx.mall.model.Dynamic;
import com.ytjj.qmyx.mall.model.DynamicTopic;
import com.ytjj.qmyx.mall.model.esmodel.DynamicEsDto;
import com.ytjj.qmyx.users.model.UsersDto;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 动态响应
 *
 *
 * @version 1.0
 * 
 */
@Data
public class DynamicResponse implements Serializable {

    /**
     * 主键
     *
     * @mbg.generated
     */
    private Integer id;

    /**
     * 用户id
     *
     * @mbg.generated
     */
    private Integer userId;

    /**
     * 用户名称
     */
    private String userName;

    /**
     * 用户头像
     */
    private String headImg;

    /**
     * 是否关注
     * 0 否 1 是
     */
    private Integer isAttention;

    /**
     * 是否喜欢
     * <p>
     * 0 否 1 是
     */
    private Integer isLike;

    /**
     * 生活动态标题
     *
     * @mbg.generated
     */
    private String title;

    /**
     * 内容
     *
     * @mbg.generated
     */
    private String content;

    /**
     * 是否推荐
     *
     * @mbg.generated
     */
    private Byte isReason;

    /**
     * 副订单id
     *
     * @mbg.generated
     */
    private Integer orderInfoId;

    /**
     * 分享总
     *
     * @mbg.generated
     */
    private Integer shareNum;

    /**
     * 评论数
     *
     * @mbg.generated
     */
    private Integer commentNum;

    /**
     * 点赞数
     *
     * @mbg.generated
     */
    private Integer praiseNum;

    /**
     * 封面图
     *
     * @mbg.generated
     */
    private String img;

    /**
     * 视频
     *
     * @mbg.generated
     */
    private String video;

    /**
     * 状态：1为审核通过，0为不显示，2审核中，3审核不通过
     *
     * @mbg.generated
     */
    private Byte status;

    /**
     * 真假用户 0真1假
     *
     * @mbg.generated
     */
    private Byte isZombie;

    /**
     * 是否为互动商品
     */
    private Integer isActivity;

    /**
     * 活动类型
     *
     * @mbg.generated
     */
    private String activityType;

    /**
     * 商品id
     *
     * @mbg.generated
     */
    private Integer productId;

    /**
     * 商品图片
     *
     * @mbg.generated
     */
    private String productImg;

    /**
     * 商品名称
     *
     * @mbg.generated
     */
    private String productName;

    /**
     * 商品价格
     *
     * @mbg.generated
     */
    private BigDecimal prodcutPrice;

    /**
     * 商品原价
     */
    private BigDecimal originalPrice;

    /**
     * 假销量
     */
    private String volumeStr;

    /**
     * 提交时间
     *
     * @mbg.generated
     */
    private Date createTime;

    /**
     * 修改时间
     *
     * @mbg.generated
     */
    private Date updateTime;

    private Integer productStatus;

    /**
     * 是否存在可发布清单
     */
    private Boolean publishFlag;

    /**
     * type
     */
    private String dynamicType;

    /**
     * 图文/视频 内容
     *
     * @mbg.generated
     */
    private String dynamicText;

    /**
     * 图文/视频
     *
     * @mbg.generated
     */
    private List<String> videoOrImg;

    private Long similaritySum;

    private Integer isOneself;

    private Long buySum;

    private ProductResponse productInfo;

    /**
     * 是否0元测评
     */
    private Integer isZeroEvaluation;

    /**
     * 产品类型(1:普通，2:活动，3：产品)
     */
    private Integer productType;

    /**
     * 可得收益
     */
    private BigDecimal incomeAmount;

    /**
     * 话题内容集合
     */
    private List<DynamicTopic> dynamicTopics;

    public DynamicResponse() {
    }

    public DynamicResponse(Dynamic dynamic) {
        BeanUtils.copyProperties(dynamic, this);
    }

    public DynamicResponse(DynamicEsDto dynamic) {
        BeanUtils.copyProperties(dynamic, this);
    }

    public DynamicResponse(Dynamic dynamic, UsersDto usersInfo) {
        BeanUtils.copyProperties(dynamic, this);
        this.headImg = usersInfo.getHeadImg();
        this.userName = usersInfo.getNickname();
        this.isActivity = IsActivityConstant.YES;
        this.activityType = ActivityTypeEnums.CASH_COUPON.name();
    }


}
